using System;
using System.Collections.Generic;

namespace Diploma.Models.IRepositories
{
    public interface ILecturersRepository
    {
        IList<Lecturer> GetAllLecturers();
        Lecturer GetLecturer(Guid id);
        IList<Lecturer> GetConsultants(Guid lecturerId);
        void Add(Lecturer lecturer);
        void Update(Lecturer newLecturer);
        void Delete(Lecturer lecturer);
        Dictionary<Lecturer, IEnumerable<CollaborationRoom>> GetFreeThemes(Student student);
        Dictionary<QualificationLevel, List<CollaborationRoom>> GetGroupedApprovedThemes(Lecturer lecturer);
        IEnumerable<CollaborationRoom> GetAllCollaborationRooms(Lecturer lecturer);
        IEnumerable<CollaborationRoom> GetConsultingCollborationRooms(Lecturer lecturer);
        IEnumerable<Lecturer> GetDeletedLecturers();
        void Restore(Guid lecturerId);

        IEnumerable<LecturersForPractice> GetLevelsInfo(Guid lecturerId);
        IEnumerable<Lecturer> GetLecturersForPractice();
        void AddForPractice(Guid lecturerId);
        void RemoveForPractice(Guid lecturerId);
        void UpdateLecturerLoadingForPractice(Guid lecturerId, int levelId, int value);
    }
}